Retour index

Représentation des nombres entiers signés

Retour niveau sup

– —

Et pour les nombres négatifs ? Il suffit de rajouter un signe devant ! Oui mais dans un processeur, comment fait-on ? On cherche un codage d’un nombre négatif le plus efficace possible. Par exemple, en décimal sur 2 chiffres, on peut coder 100 nombres.

Représentation de 100 nombres avec 2 chiffres décimaux.

On peut faire plusieurs choix pour coder 50 nombres négatifs et 50 nombres positifs. Par exemple, les 50 premiers sont choisis négatifs et les 50 suivants positifs. Donc le nombre -50 est codé "0", le nombre -1 est codé "49", le nombre 0 est codé "50", le nombre 1 est codé "51", le nombre 49 est codé "99"… Ce choix n’est pas très judicieux : les nombres positifs signés ne ressemblent pas du tout aux nombres positifs non signés. En effet, le nombre 1 est codé "1" dans la première convention et "51" dans la seconde.

Pour éviter cet inconvénient, on convient de noter les nombres 0 à 49 comme des nombres classiques : 0 est représenté par "0", ..., 49 est représenté par "49". On écrit alors les nombres négatifs avec les 50 codes non utilisés : -50 est représenté par "50", -49 est représenté par "51", …, -2 est représenté par "98" et -1 est représenté par "99". Les nombres positifs sont alors simples à lire. Les nombres négatifs quant à eux sont plus difficiles à lire. Mais ce codage apporte un gros avantage. Si l'on effectue l'addition 1+(-1) on a : 1+99=100. Si l'on ne garde que les 2 derniers chiffres (convention de départ), on voit apparaître que 1+(-1)=0. Il en va de même pour tous les nombres définis ainsi.

Comment peut-on trouver facilement le codage d'un nombre négatif ? On commence par calculer le complément restreint, noté Cr, du nombre choisi. Il est trouvé en partant du nombre positif et en cherchant pour chaque chiffre le complément pour arriver à 9=10-1. Dans le cas de 37 on obtient : 3à 6 et 7à 2, soit 62. La somme de ces deux nombres donne : 37+62=99. Pour obtenir 0, il suffit de rajouter 1. On calcule donc le complément vrai, Cv, du nombre tel que : Cv=Cr+1. Dans notre cas, 62+1=63 et on retrouve le résultat de l'exercice.

Dans les processeurs, ce codage est utilisé avec une représentation binaire des nombres.

– —

Retour index

Suite